package com.cn.date.date;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * SimpleDateFormat 是线程不安全的。如果在多线程环境中使用，可能会导致数据竞争问题。解决方法：
 * 	局部变量：每个线程单独创建 SimpleDateFormat 实例。
 * 	使用 ThreadLocal：为每个线程提供独立的 SimpleDateFormat 实例。
 */
public class Date_08_SimpleDateSecurity {
    private static final ThreadLocal<SimpleDateFormat> sdf = ThreadLocal.withInitial(() ->
            new SimpleDateFormat("yyyy-MM-dd")
    );

    public static String format(Date date) {
        return sdf.get().format(date);
    }

    public static Date parse(String dateStr) throws ParseException {
        return sdf.get().parse(dateStr);
    }
}
